Hardware devices operating in complex data networks, such as utility meters of a power distribution network, can be designed to have operating life spans of up to 15-20 years. As new devices and functions are introduced into the data network, the firmware installed on existing devices in the data network can be updated to maintain the compatibility of the existing devices with the data network.
Development of firmware can involve extensive time spent on building the environment in which the firmware is to be tested, deploying the firmware to the testing environment, and testing the firmware. Prior solutions for developing firmware can include a developer receiving a request for a firmware version for a device (i.e. a “firmware build”). The developer generates a software image that can include the firmware build and an application executed by the target device. The software image is manually installed (i.e., “deployed”) onto the target device. Testing tools or other utilities are used to perform manual testing of the firmware build deployed to the target device. For example, to test a new firmware module for a utility meter of a power distribution network, an operator can configure a physical test server environment, install firmware on test meters in communication with the test server environment, and perform manual testing of the firmware installed on the test meters. In complex systems involving a large number of target devices, the development, deployment, and testing of a firmware build can have a duration of days or weeks, thereby decreasing the efficiency of developing new firmware builds and increasing the cost associated with upgrading firmware builds.
Accordingly, systems and methods are desirable for reducing the time involved in a successful execution of the build-deploy-test cycle.